快速了解 Polkadot JAM 链的核心优势(下)| Polkadot Wiki
加入 PolkaWorld 社区,共建 Web 3.0!
Polkadot 682 号提案已经通过并执行,将 JAM 作为 Polkadot 的新方向,并取代中继链!本文是来自 Polkadot wiki 文档中对 JAM 的介绍。
JAM,即 Join-Accumulate Machine,是继中继链之后的一个前瞻性设计。其名称来源于 CoreJAM,意为 Collect Refine Join Accumulate,概述了该机器所体现的计算模型,最初由 Gavin Wood 在 RFC 中描述。然而,在实际链中,仅执行 Join 和 Accumulate 功能,而 Collect 和 Refine 过程则发生在链外。
继续阅读,查看该文档的下半部分!
《快速了解 Polkadot JAM 链的核心优势(上)| Polkadot Wiki》
Polkadot 虚拟机(PVM)
PVM 设计根植于以简单和多功能性著称的 RISC-V 指令集架构(ISA)。RISC-V ISA 提供了几个优势:
它可以很容易地转换为常见的硬件格式,如 x86、x64 和 ARM。
它有着良好的工具支持,例如 LLVM。
PVM 本身体现了简单性和安全性,可以进行沙盒化,并提供各种执行保证。它是确定性的、共识敏感的,并且有利于计量。与其他虚拟机不同,PVM 没有复杂性和过多的意见化。
尽管 WASM 针对 Web 用例进行了优化,但在处理延续性时,特别是在堆栈管理方面存在挑战。RISC-V 通过将堆栈放在内存中,解决了这个问题,自然地处理延续性,而不会增加额外的复杂性。
此外,PVM 在常规硬件如 X64 和 ARM 上运行时表现出色的执行速度,提供了例如免费计量等优于 WASM 的优势。
RISC-V 支持的延续性有望为像 JAM 这样的多核平台上的可扩展编码建立新的标准。异步并行架构在硬件和软件平台的可扩展性中变得越来越重要,这一趋势预计也将扩展到区块链和共识算法中。
SAFROLE
SAFROLE 是一种区块生产算法,是对 SASSAFRAS 的简化。它排除了一些可能对平行链有用的组件。因此,平行链可能会坚持使用 SASSAFRAS 而不是 SAFROLE。SAFROLE 将尽可能简单,以:
确保其尽可能少的意见化,以最大限度地提高未来的潜在用例。
遵循以太坊黄皮书的脚步,并尽可能多地尝试实现,以传播专业知识。
全面理解 Polkadot 1.0 的工作原理是具有挑战性的。有了 JAM,那些能够阅读和理解黄皮书的人将能够相当快速地阅读和理解 JAM 的工作原理。因此,简洁性至关重要。
SAFROLE 是一种基于 SNARK 的区块生产算法。它专门使用 SNARK 来实现匿名功能,并提供恒定时间的区块生产,几乎完全无分叉。只有在两种情况下可能会出现分叉:网络分裂或有人故意作恶。匿名性的巨大价值不在于隐藏验证者的身份。事实上,当他们实际生产区块时,他们无论如何都会暴露自己的身份,而是为了确保区块生产机制本身的安全,基本上是为了避免垃圾攻击。
网络
JAM 的网络使用 QUIC 协议。这使得大量验证者之间可以直接点对点连接。因此,基本上 Polkadot 上的所有 1000 多个验证者都可以彼此保持持久连接,而不会出现套接字问题。Gossip 被避免,主要是因为它不需要,因为 JAM 不处理交易。如果需要分发非点对点或在非常小的验证者子集中分发的内容,将使用网格扩散。在这种情况下,验证者被安排成网格,数据包按行发送,然后该行的每个节点将其发送给其列的所有成员。
高效区块处理的流水线
在基于状态的区块链(如以太坊)中,区块头通常包含后验状态根,总结了所有区块计算后的状态。因此,区块头在所有计算完成之前无法发送。然而,一些计算可以在发送区块头之前进行,因为它们的结果决定了区块的有效性。
在 JAM 中,采用了一种不同的方法,将前状态根放置在区块头中,而不是后状态根。这意味着区块头中显示的状态根滞后一个区块。因此,可以执行约占区块工作量或执行时间 5% 的轻量计算,并且区块可以立即分发。剩下的 95% 计算,主要是累积任务,可以随后完成。这使得在当前区块的执行尚未完成时就可以开始下一个区块。
这种方法可以更有效地利用区块之间的时间。在传统设置(如 Polkadot 的 6 秒区块时间)中,必须提供后验状态根,只有一部分时间可以用于计算。然而,在 JAM 中使用流水线,整个区块时间可以有效地用于计算,从而最大化效率。
虽然将整个区块时间用于计算可能并不理想,因为这可能导致永久性的追赶和延迟的区块导入,但 JAM 的方法相比传统设置提供了显著更多的计算时间。这意味着可以实现大约三到三秒半的有效区块计算时间,相对于当前设置有了实质性的改进。
架构差异:JAM 与中继链
JAM 和中继链之间的一个架构区别在于功能的固定程度。虽然中继链固定了某些元素,例如用于定义协议的语言(WASM),但 JAM 在这方面走得更远。例如,它规定了用于编码区块头的类型和哈希方案,使这些方面的改变变得具有挑战性。
然而,通过其服务模型,JAM 保留了与中继链的 WebAssembly 元协议相当的灵活性。在这种模型中,可升级性的责任被转移到服务上,从而使链本身不再需要负担可升级性。这一决策有三个主要原因支持:
优先考虑简单性。保持一个不可升级的链显著减少了复杂性。
中继链倾向于引入复杂功能而不移除旧功能,这使事情变得复杂。由于升级容易实现,简化 Substrate SDK 的动机不强。因此,复制 Polkadot 变得不切实际。
JAM 固定参数所带来的优化潜力。通过明确了解 JAM 链必须执行的特定任务并设置固定参数,可以在网络拓扑和时间等方面实现优化。这与中继链高度可升级的特性形成对比,在那里,由于每次升级可能带来的频繁改变,这些优化变得更加复杂。
尽管存在这些差异,JAM 在应用层功能方面仍保留了灵活性,例如核心时间销售、质押和治理,所有这些都在服务中管理。此外,JAM 引入了一个新概念,通过将代币余额与服务关联起来,提供了经济模型调整的机会,这在像中继链这样纯粹可升级的链中不容易实现。
JAM Toaster
为了确保 JAM 符合其最初的期望,正在进行的努力之一是为 JAM 链建立一个全面的测试环境。与在不可靠硬件上运行的小规模测试网络(以降低云计算成本)不同,这项工作需要大量投资。我们引入了 JAM toaster,这是一个旨在进行大规模试验和性能评估的测试平台。这解决了在开发 Polkadot 中继链过程中遇到的一个先前挑战,即了解在如此规模的网络上操作的突现效应和动态 proved to be difficult。之前的尝试仅限于在测试网络和 Kusama 网络上的几十个节点,而由于访问验证者节点的限制,Kusama 网络缺乏全面的监控能力。相反,小规模测试网络未能准确模拟大规模部署的网络动态。JAM toaster 旨在弥合这一差距,通过在整个 JAM 网络(包括 1023 个节点)规模上进行深入研究。这一平台促进了对网络行为和性能特征的调查,为开发人员提供了有关其平行链预期性能的宝贵见解。
PolkaWorld 注:“JAM Toaster”是一个用于JAM链的大规模测试平台。这个名称可能是为了形象化地描述其功能,就像烤面包机(toaster)对面包进行处理一样,JAM Toaster对JAM链进行测试和评估。其主要目的是进行大规模试验和性能评估,帮助开发人员理解和优化网络行为和性能特征。
JAM 和 Substrate
基准测试与计量
在使用 JAM 时,基准测试或性能测试可以是可选的。虽然在某些情况下仍然需要基准测试,但 JAM 的计量系统通常可以减少频繁基准测试的需求。JAM 运行在一个计量系统上,允许用户在计算工作完成后评估其工作量。此外,还有一个理论机制可以控制计算,通常在区块构建时实现。
然而,在某些情况下,基准测试仍然是相关的。例如,当计量系统对某些用例来说过于保守时,可能需要基准测试来提升性能。此外,对于需要长时间执行的任务,基准测试可以确保这些任务不会运行时间过长。
XCMP
接下来谈论跨链消息传递(XCMP),JAM 要求全面支持 XCMP。这是因为在中继链内,通过候选接收来传递比所有平行链同时传输所有数据更为实际的数据量。JAM 严格遵守规则,即使是针对平行链服务,包括在“精炼”和“积累”阶段之间的数据传输限制。目前,使用水平中继链消息传递(HRMP),所有消息都通过中继链传递,将数据负载限制在 4 kB 或更少,这可能并不现实。因此,XCMP 作为一种必要且迟来的改进出现,其中只有消息头通过链中继,而实际的消息数据在链外传输。
Accords
Accords 本质上封装了状态和逻辑,类似于智能合约,并在每个平行链存在多个实例。它们促进实例之间的消息交换,并支持与平行链的同步交互。Accords 在平行链之间缺乏信任的情况下非常有用,例如代币转移。与现有方法需要一个储备中介不同,Accords 简化了平行链之间直接的代币传输,消除了需要信任的中介。此外,Accords 可以作为 XCM 转发机制,确保消息在通过第三方中介转发时的完整性,从而消除了显式来源标记的需求。
提高效率
最后,JAM 对利用基础共识机制的更广泛且少有偏见的方法使其有利于实施更多创新解决方案。例如,分布式可用性对于诸如零知识证明等复杂任务变得更加实用和高效。此外,JAM 支持混合资源消耗模型,其中工作包可以包含计算密集型任务和数据密集型操作。通过将需要大量计算的服务与需要高数据可用性的服务配对,JAM 优化了验证者资源的利用,从而降低了成本。这种灵活的方法使得可以将分布式可用性和 SNARK 验证等任务与平行链工作负载结合起来,在提高效率的同时降低成本。
JAM 的增强和兼容性
JAM 的设计优先考虑与现有 Polkadot 1.0 平行链的兼容性。虽然它保持了与 Polkadot SDK 的兼容性,但 Polkadot 验证者功能(PVF)进行了重新定向。PVF 将不再以 WebAssembly 为目标,而是以 Polkadot 虚拟机(PVM)为目标。由于 PVM 是 RISC-V 的一个小改动,而 RISC-V 已经被确立为官方的 LLVM 目标,这一转变得以实现。因此,PVM 可能在 JAM 部署之前成为官方的 LLVM 目标。
除了作为平行链的宿主,JAM 还引入了显著的增强功能。它有潜力简化基准测试工作并减轻未来的基准测试需求。此外,JAM 引入了 accords 概念,即多实例、多分片的智能合约,这些合约管理并执行平行链之间的特定交互协议。此外,完全支持跨链消息传递(XCMP)是必需的,这使得平行链之间的信息传输不再受限,通常通过跨链消息(XCM)实现。
关于 Agile Coretime,JAM 保持与现有设置的兼容性。然而,它引入了一个新功能,不仅可以将核心时间目标设定在平行链上,还可以设定在任意的工作包集合上。这种灵活性增强了 JAM 生态系统内资源分配的多样性和效率。
5 月 31 日,本周五晚 19:00,PolkaWorld 将举办每月的 Polkadot 圆桌派,邀请生态项目一起分析 Polkadot 的最新进展、网络提案及其重大进展等!如果你感兴趣,可以关注我们的中文推特,你将第一时间收到开播提醒!
直播地址:@polkaworld_pro(波卡世界推特账号)
PolkaWorld Telegram 群:
https://t.me/+z7BUktDraU1mNWE1
PolkaWorld Youtube 频道:
https://www.youtube.com/c/PolkaWorld
PolkaWorld Twitter:
@polkaworld_org
更多内容
波卡周报 | Gavin 讨论区块空间话题!Polkadot 682 提案即将通过,确定 JAM 将替代波卡中继链的方案!
探索 Acala 第一篇:一个强大且多功能的 DeFi 平台!
Polkadot 官方发文:如何帮助平行链提升 10 倍吞吐量?
关注 PolkaWorld
发现 Web 3.0 时代新机遇
点个 “在看” 再走吧!